In the present day, investors are discovering that computers and, in particular, computer networks such as the Internet, are a particularly useful tool for managing and tracking their financial investment portfolio. Whether it is an individual investor seeking to occasionally buy or sell stocks, bonds, or other financial instruments; a day trader conducting numerous such transactions each day; or a professional investor such as a licensed broker who manages the financial portfolios of numerous clients; access via a computer network to financial markets to conduct these transactions is now and increasingly more so in the future an important channel for execution of this business.
Thus, a need in the art has developed for an infrastructure that both supports access to the financial markets and provides fast and efficient management of those transactions. In previous systems known to the inventors herein, such infrastructure as adopted and used in the prior art took on a client-server model such as that shown in FIG. 1.
As shown in FIG. 1, a trading company maintains a system 100 that includes a back office mainframe computer 102 on which customer account data is stored. This customer account data generally includes personal information about each customer (e.g., name, address, etc.), the investment positions of each customer (e.g., what stocks that customer owns), the value of those positions, and any other pertinent account information. To provide access to this account information, one or more web servers 104 are provided to allow a customer 108 to access the account information in the mainframe 102 via a computer network 106. Business logic that is resident on either or both of the web servers 104 and the mainframe 102 operates to process activity requests from a customer such as (1) buying/selling financial instruments on a trading market 114 through a gateway 116 that formats the order requests in accordance with the market specifications and (2) getting current quote data for financial instruments from a quote vendor 112. For a system 100 that experiences high customer traffic, redundant web servers are placed behind a load balancer 110 in order to alleviate any potential delays due to bottlenecks. Incoming activity requests from the customer 108 are distributed by the load balancer 110 to an available web server 104.
However, as electronic trading of financial instruments has grown more popular, the demands placed on the system of FIG. 1 have also increased. In handling this increased demand, the inventors herein have found that such a system is not easily scalable to accommodate high traffic volume. The approach of merely adding new web servers is only a partial solution to the problem for many reasons not the least of which is the cost required to provide each new “intelligent” web server and the problems inherent in the distributed logic working well between the increasing number of elements in the network. Recognizing the drawbacks of the prior art system structure and its inherent limitations, the inventors herein have developed a radical new approach for the design of the infrastructure for an automated financial instrument brokerage system.
According to one aspect of the preferred embodiment of the present invention, the inventors herein have abstracted the system's activity request processing business logic onto an intermediate layer that interfaces front end web servers with backend accounting databases, quote vendors, and trading market interfaces. This design effectively “gathers” the logic together into a single intermediate layer and removes it from the front end and back end layers. Such abstraction greatly improves the system's flexibility to accommodate modifications in the backend of the system (e.g., a new accounting database, a new quote vendor, or a new trading market interface) or modifications in the front end of the system (e.g., modifications to the customer interfaces or the addition of new types of customer interfaces such as an interface to wireless devices such as cell phones or personal digital assistants (PDAs)). Accordingly, the intermediate “layer” or tier of business logic can remain unchanged or largely unchanged when such modifications occur.
According to another aspect of the preferred embodiment of the invention, within the intermediate layer, various tasks of the business logic can be segmented to separate dedicated servers to provide further scalability and flexibility. For example, logic for processing order activity requests can be placed on one or more dedicated order servers. Logic for obtaining customer account data from a backend accounting database can be placed on one or more dedicated customer account servers. Logic for obtaining quote data can be placed on one or more dedicated quote servers. This separation of processing tasks onto separate dedicated servers on the basis of processing type, task or function improves the scalability of the system because if any particular server (e.g., the order server, the customer account server, and/or the quote server) becomes bogged down with traffic, an additional redundant server of that particular type can be added to the system for increased processing capabilities. Further, modifications to logic can be more easily implemented due to such segmentation as the logic is isolated on the corresponding dedicated server.
According to another aspect of the preferred embodiment of the present invention, the intermediate layer servers preferably communicate with each other and with the front end layer via the Internet Protocol Suite (TCP/IP) communication protocol, which accommodates the front end layer and intermediate layer being physically remote from each other and the various intermediate layer servers being physically remote from each other.
According to another aspect of the preferred embodiment of the present invention, a plurality of redundant servers are preferably implemented in the intermediate layer and a load balancer is preferably used to interface the redundant servers with the front end. The load balancer can also be used to interface the redundant servers with the other server types in the intermediate layer. For example, a load balancer can interface a plurality of redundant order servers with the front end. Preferably, a load balancer is used with a bank of redundant servers for each intermediate layer server type to distribute incoming activity requests among the redundant servers in a balanced manner, thereby greatly decreasing the processing delay for activity requests by eliminating processing bottlenecks. With such a configuration, when additional processing capability is needed for a particular type of processing (e.g., if there is congestion in the bank of redundant order servers), one only needs to add a new redundant server of that type to the system and register that new redundant server with the load balancer for that server group.
According to yet another aspect of the preferred embodiment of the present invention, data caching is preferably utilized in the intermediate layer servers to reduce the need for data transfers between the intermediate layer and the backend layer. For example, resident memory, preferably application-in-memory cache, on a customer account server can be used to store customer account data that has been recently retrieved from the backend accounting database. When an activity request is received by that customer account server that would utilize customer account data that is stored in the cache, the customer account server, in accordance with predetermined usage rules, can process that activity request in accordance with the cached data, thereby alleviating the need for a data transfer from the backend database. Such data caching provides a substantial increase in the speed of processing an activity request. Further, such data caching can also preferably be used in connection with the quote data that the quote server receives from a quote vendor.
According to yet another aspect of the preferred embodiment of the present invention, the intermediate layer can process activity requests generated by the front end layer independently of the customer interface from which the activity request originated (e.g., for activity requests originating from a web site, from a wireless device, or from a touchtone telephone) through the use of a common interface that formats activity requests from any of the customer interfaces in the same manner.
According to yet another aspect of the preferred embodiment of the present invention, quote data can preferably be obtained from multiple quote vendors in a manner transparent to various services in the system, despite potential formatting differences in the quote data from the multiple vendors, because the quote server is preferably configured to convert all quote data into a common data format for internal system wide use, regardless of its source.
According to yet another aspect of the preferred embodiment of the present invention, migration from an old backoffice accounting database system to a new backoffice accounting database system is facilitated by a“three day system” wherein interaction with the old and new backoffice databases proceeds according to a specialized protocol for the first three days of the migration.
These and other features and advantages of the present invention will be in part apparent and in part pointed out in the following description and referenced figures.